import program from 'commander';

import create from './create'; // 项目创建
import dev from './dev'; // 项目启动
import build from './build'; //项目打包
import add from './add'; // 新建站点

let actionMap = {
    // 项目创建
    create: {
        description: '创建一个新的项目', // 描述
        usages: [// 使用方法
            'beon create'
        ],
        alias: 'c' // 命令简称
    },
    // 启动项目
    dev: {
        description: '本地启动项目',
        usages: [
            'beon dev'
        ],
        alias: 'd'
    },
    //打包
    build: {
        description: '服务端项目打包',
        usages: [
            'beon build'
        ],
        alias: 'b'
    },
    // 新建站点
    add: {
        description: '创建一个新的站点', // 描述
        usages: [// 使用方法
            'beon add'
        ],
        alias: 'a' // 命令简称
    }
}

Object.keys(actionMap).forEach(action => {
    program
        .command(action)
        .description(actionMap[action].description)
        .alias(actionMap[action].alias)
        .action(() => {
            switch (action) {
                case 'create':
                    create();
                    break;
                case 'dev':
                    dev();
                    break;
                case 'build':
                    build();
                    break;
                case 'add':
                    add();
                    break;
                default:
                    break;
            }
        })
});

program
    .version(require('../package.json').version, '-v --version')
    .parse(process.argv);

if (!process.argv.slice(2).length) {
    program.outputHelp();
}
